<?php
/**
 * Created by b17
 * 3/23/12 6:41 PM
 */

use Managers\Builder\BadWordsBuilder,
    Managers\BadWords,
    G4T\Form\FormBuilder;

class Admin_FilterController extends G4T_CrudController
{

    public function indexAction()
    {
        $builder = new BadWordsBuilder();

        $total = $builder->getTotal();
        $this->view->total = $total;

        $words = $builder->getArrayResult();
        $this->view->words = $words;
    }

    /**
     * Возвращает менеджер для работы с сущностью.
     *
     * @return \Managers\CrudManager
     */
    protected function getManager()
    {
        return new BadWords();
    }

    /**
     * Возвращает строителя форм для создания форм.
     * @return \G4T\Form\FormBuilder
     */
    protected function createFormBuilder()
    {
        return FormBuilder::createFormBuilder(BadWordsBuilder::TABLE)
            ->addField('word', 'string', array('label' => 'Слово'))
            ->addField('submit', 'submit', array('label' => 'Сохранить', 'class' => 'btn btn-primary'));
    }

    /**
     * Переход при не найденой сущности.
     * @param $id
     */
    protected function redirectWhenNotFound($id = null)
    {
        $this->_flashMessenger->addMessage('Запись не найдена.', Lib_Flash::ERROR, Lib_Flash::LATER);
        $this->_redirect($this->_getRedirectionUrl());
    }

    /**
     * Переход при успешном изменении объекта.
     * @param $entity
     */
    protected function redirectWhenSuccess($entity = null)
    {
        $this->_flashMessenger->addMessage('Запись успешно обновлена.', Lib_Flash::NOTICE, Lib_Flash::LATER);
        $this->_redirect($this->_getRedirectionUrl());
    }

    private function _getRedirectionUrl()
    {
        return '/admin/filter';
    }
}
